\documentclass[tikz,border=2mm]{standalone}
\usepackage{array,amsmath,mathptmx,xcolor,bbding,pifont,colortbl}
\usepackage[UTF8]{ctex}
\newcolumntype{C}[1]{>{\centering\let\newline\\\arraybackslash\hspace{0pt}}m{#1}}
% 只需要这个就可以
\usepackage[thicklines]{cancel}
% 可以设置线条颜色，默认是黑色
\usepackage{xcolor}
\usepackage{tikz-cd}
\usepackage{tikz,graphicx,subfig,caption} % Required for drawing custom shapes
\usetikzlibrary{fit,matrix,chains,arrows,shapes,positioning,arrows.meta,chains,shadows,shapes.callouts,decorations.text,shapes.symbols,shapes.misc, positioning,decorations.pathreplacing,calc,backgrounds,}

% 额外添加
\usepackage{indentfirst}
\usepackage{diagbox}
\usepackage{amssymb}
\usepackage{pifont}

\begin{document} 
	\begin{tikzpicture}[>=latex,every node/.style={anchor=south west,,inner sep=0,fill=white}]
		\node(formula)[anchor=north,align=left,fill=white,inner sep=0.3em] at (0,0){  
			$ \because \ S\ \ \Rightarrow \ \ if(\ \ R\ \ ){\textcolor{blue}{\{}}IF(if){\textcolor{blue}{\}}}\ \ S\ \ ;\ {\textcolor{blue}{\{}}IE(ie){\textcolor{blue}{\}}}$
		}; 
		\node(sub1)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=-3em,yshift=-0.4em]formula.south){$E\ < \ E{\textcolor{blue}{\{}}GEQ(<){\textcolor{blue}{\}}}$}; 
		\node(sub11)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=-3.5em,yshift=-0.7em]sub1.south){$T$};
		\node(sub12)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=-1em,yshift=-0.7em]sub1.south){$T$};
		\node(sub111)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=0em,yshift=-0.7em]sub11.south){$F$};
		\node(sub121)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=0em,yshift=-0.7em]sub12.south){$F$};
		\node(sub1111)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=-2em,yshift=-0.7em]sub111.south){$a{\textcolor{blue}{\{}}push(a){\textcolor{blue}{\}}}$};
		\node(sub1211)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=1em,yshift=-0.7em]sub121.south){$b{\textcolor{blue}{\{}}push(b){\textcolor{blue}{\}}}$};
		
		\draw[-] ([xshift=-2.4em,yshift=0.3em]formula.south) -- ([xshift=-3.5em,yshift=-0.2em]sub1.north);
		\draw[-] ([xshift=-2.4em,yshift=0.3em]formula.south) -- ([xshift=-2em,yshift=-0.2em]sub1.north);
		\draw[-] ([xshift=-2.4em,yshift=0.3em]formula.south) -- ([xshift=-0.5em,yshift=-0.2em]sub1.north);
		\draw[-] (sub11.north) -- ([xshift=-3.5em,yshift=0.2em]sub1.south);
		\draw[-] (sub12.north) -- ([xshift=-1em,yshift=0.2em]sub1.south);
		\draw[-] (sub111.north) -- (sub11.south);
		\draw[-] (sub121.north) -- (sub12.south);
		\draw[-] (sub1111.north) -- (sub111.south);
		\draw[-] (sub1211.north) -- (sub121.south);
		
		\node(sub2)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=8.5em,yshift=-0.9em]formula.south){$ a{\textcolor{blue}{\{}}PUSH(a){\textcolor{blue}{\}}}\ =\ E{\textcolor{blue}{\{}}ASSI(=){\textcolor{blue}{\}}}$}; 
		\node(sub3)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=2.5em,yshift=-0.9em]sub2.south){$ E \ + \ T{\textcolor{blue}{\{}}GEQ(+){\textcolor{blue}{\}}}$}; 
		\node(sub31)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=-3.7em,yshift=-0.7em]sub3.south){$T$};
		\node(sub32)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=-1.2em,yshift=-0.7em]sub3.south){$F$};
		\node(sub311)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=0em,yshift=-0.7em]sub31.south){$F$};
		\node(sub321)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=2em,yshift=-0.7em]sub32.south){$1{\textcolor{blue}{\{}}push(1){\textcolor{blue}{\}}}$};
		\node(sub3111)[anchor=north,align=left,fill=white,inner sep=0.3em] at ([xshift=0em,yshift=-0.7em]sub311.south){$a{\textcolor{blue}{\{}}push(a){\textcolor{blue}{\}}}$};
		
		\draw[-] ([xshift=3.5em,yshift=0.3em]formula.south) -- ([xshift=-5.8em,yshift=-0.2em]sub2.north);
		\draw[-] ([xshift=3.5em,yshift=0.3em]formula.south) -- ([xshift=-0em,yshift=-0.2em]sub2.north);
		\draw[-] ([xshift=3.5em,yshift=0.3em]formula.south) -- ([xshift=2em,yshift=-0.2em]sub2.north);
		\draw[-] ([xshift=1.2em,yshift=0.3em]sub2.south) -- ([xshift=-3.2em,yshift=-0.2em]sub3.north);
		\draw[-] ([xshift=1.2em,yshift=0.3em]sub2.south) -- ([xshift=-2.1em,yshift=-0.2em]sub3.north);
		\draw[-] ([xshift=1.2em,yshift=0.3em]sub2.south) -- ([xshift=-1em,yshift=-0.2em]sub3.north);
		\draw[-] (sub31.north) -- ([xshift=-3.7em,yshift=0.3em]sub3.south);
		\draw[-] (sub32.north) -- ([xshift=-1.2em,yshift=0.3em]sub3.south);
		\draw[-] (sub311.north) -- (sub31.south);
		\draw[-] (sub321.north) -- (sub32.south);
		\draw[-] (sub3111.north) -- (sub311.south);
		
	\end{tikzpicture}
\end{document}
